সি প্রোগ্রামিং ভাষায় ডেট এবং টাইম ফাংশনগুলো ব্যবহার করে বর্তমান সময় ও তারিখ সংগ্রহ করা, ফরম্যাট করা এবং প্রোগ্রামে সময় হিসাব করা যায়। এই ফাংশনগুলো সি স্ট্যান্ডার্ড লাইব্রেরির time.h
হেডার ফাইলের অন্তর্গত। এই ফাংশনগুলোর মাধ্যমে প্রোগ্রামের কার্যকাল ট্র্যাক করা এবং সময় সম্পর্কিত বিভিন্ন কাজ করা সহজ হয়।
নিচে সি ভাষায় ব্যবহৃত গুরুত্বপূর্ণ ডেট এবং টাইম ফাংশনগুলো এবং তাদের কাজ সম্পর্কে আলোচনা করা হলো:
time()
– বর্তমান সময় সংগ্রহtime()
ফাংশনটি বর্তমান সময়কে Unix Epoch Time (1 জানুয়ারি 1970 থেকে শুরু করে সেকেন্ড হিসেবে গৃহীত) রিটার্ন করে। এটি বর্তমান সময়ের সেকেন্ড প্রদান করে।
time_t time(time_t *timer);
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
current_time = time(NULL); // বর্তমান সময় সংগ্রহ
printf("Current time: %ld\n", current_time);
return 0;
}
ctime()
– বর্তমান সময়কে স্ট্রিংয়ে রূপান্তরctime()
ফাংশনটি time()
ফাংশনের আউটপুট (Unix time) কে স্ট্রিং ফরম্যাটে রূপান্তর করে এবং একটি পাঠযোগ্য টাইম স্ট্রিং রিটার্ন করে।
char *ctime(const time_t *timer);
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
time(¤t_time);
printf("Current time: %s", ctime(¤t_time));
return 0;
}
Output Example:
Current time: Thu Nov 4 18:22:48 2021
localtime()
– স্থানীয় সময়ে রূপান্তরlocaltime()
ফাংশনটি time()
ফাংশনের আউটপুটকে স্থানীয় সময়ে রূপান্তর করে এবং একটি tm
স্ট্রাকচার প্রদান করে, যাতে বছর, মাস, দিন, ঘন্টা, মিনিট, এবং সেকেন্ড আলাদাভাবে পাওয়া যায়।
struct tm *localtime(const time_t *timer);
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
struct tm *local;
time(¤t_time);
local = localtime(¤t_time);
printf("Year: %d\n", local->tm_year + 1900); // 1900 যোগ করা হয়
printf("Month: %d\n", local->tm_mon + 1); // 0 থেকে শুরু হয়
printf("Day: %d\n", local->tm_mday);
printf("Hour: %d\n", local->tm_hour);
printf("Minute: %d\n", local->tm_min);
printf("Second: %d\n", local->tm_sec);
return 0;
}
strftime()
– সময় এবং তারিখ ফরম্যাট করাstrftime()
ফাংশনটি একটি সময়/তারিখ স্ট্রাকচার (tm
) থেকে বিভিন্ন ফরম্যাটে সময় ও তারিখ প্রদর্শন করতে ব্যবহৃত হয়।
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr);
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
struct tm *local;
char buffer[80];
time(¤t_time);
local = localtime(¤t_time);
strftime(buffer, sizeof(buffer), "Date: %d-%m-%Y, Time: %H:%M:%S", local);
printf("%s\n", buffer);
return 0;
}
Output Example:
Date: 04-11-2021, Time: 18:25:35
difftime()
– সময়ের পার্থক্য নির্ধারণdifftime()
ফাংশনটি দুটি সময়ের মধ্যে পার্থক্য নির্ধারণ করতে ব্যবহৃত হয়। এটি দুটি time_t
টাইপের সময় গ্রহণ করে এবং তাদের মধ্যে পার্থক্য সেকেন্ডে রিটার্ন করে।
double difftime(time_t end, time_t start);
#include <stdio.h>
#include <time.h>
int main() {
time_t start_time, end_time;
time(&start_time);
// কিছু সময়ের জন্য অপেক্ষা
sleep(2); // 2 সেকেন্ড অপেক্ষা
time(&end_time);
double diff = difftime(end_time, start_time);
printf("Time difference: %.0f seconds\n", diff);
return 0;
}
mktime()
– tm
স্ট্রাকচারকে time_t
এ রূপান্তরmktime()
ফাংশনটি tm
স্ট্রাকচারকে time_t
টাইপের ডেটা টাইপে রূপান্তর করে। এটি সাধারণত স্থানীয় সময়কে Unix time (সেকেন্ডে) রূপান্তরের জন্য ব্যবহৃত হয়।
time_t mktime(struct tm *timeptr);
#include <stdio.h>
#include <time.h>
int main() {
struct tm time_info = {0};
time_info.tm_year = 2021 - 1900; // বছর নির্ধারণ
time_info.tm_mon = 10; // মাস নির্ধারণ (0 - 11)
time_info.tm_mday = 4; // দিন নির্ধারণ
time_t epoch_time = mktime(&time_info);
printf("Epoch time: %ld\n", epoch_time);
return 0;
}
tm
স্ট্রাকচার ফিল্ডstruct tm
টাইম স্ট্রাকচারে কয়েকটি ফিল্ড রয়েছে, যা স্থানীয় সময়ের বিভিন্ন উপাদান সংরক্ষণ করে।
ফিল্ড | বর্ণনা |
---|---|
tm_year | বছর (1900 থেকে শুরু) |
tm_mon | মাস (0 = জানুয়ারি, 11 = ডিসেম্বর) |
tm_mday | মাসের দিন (1 - 31) |
tm_hour | ঘণ্টা (0 - 23) |
tm_min | মিনিট (0 - 59) |
tm_sec | সেকেন্ড (0 - 59) |
tm_wday | সপ্তাহের দিন (0 = রবিবার) |
tm_yday | বছরের দিন (0 - 365) |
tm_isdst | ডে লাইট সেভিং টাইম নির্দেশক |
ফাংশন | কাজ |
---|---|
time() | বর্তমান সময় সংগ্রহ (Unix time) |
ctime() | Unix time কে স্ট্রিংয়ে রূপান্তর |
localtime() | Unix time কে স্থানীয় সময়ে রূপান্তর |
strftime() | সময় ও তারিখ ফরম্যাট করা |
difftime() | দুটি সময়ের মধ্যে পার্থক্য নির্ধারণ |
mktime() | tm স্ট্রাকচারকে time_t এ রূপান্তর |
সি প্রোগ্রামে ডেট এবং টাইম ফাংশনগুলো ব্যবহার করে বর্তমান সময় সংগ্রহ, প্রদর্শন এবং সময়ের মধ্যে পার্থক্য নির্ধারণ করা যায়। এগুলো সময় নির্ধারণ, ফরম্যাট এবং ট্র্যাকিংয়ের জন্য অত্যন্ত গুরুত্বপূর্ণ।
time.h
হেডার ফাইল এবং এর ফাংশনসমূহtime.h
হেডার ফাইলটি সি প্রোগ্রামিং ভাষায় সময় এবং তারিখ (Date and Time) সম্পর্কিত কাজের জন্য ব্যবহৃত হয়। এর মাধ্যমে প্রোগ্রামাররা বর্তমান সময় ও তারিখ নির্ধারণ, সময়ের হিসাব রাখা, এবং প্রোগ্রামিং কাজের টাইমিং পরিচালনা করতে পারেন।
এখানে time.h
হেডার ফাইলের কিছু গুরুত্বপূর্ণ ফাংশন এবং তাদের ব্যাখ্যা দেওয়া হলো:
time()
– বর্তমান সময় নির্ণয়time()
ফাংশনটি বর্তমান সময়কে time_t
টাইপের একটি ভেরিয়েবলে রিটার্ন করে, যা UNIX epoch (1970 সালের 1 জানুয়ারি, 00:00:00 UTC) থেকে শুরু করে বর্তমান পর্যন্ত কতো সেকেন্ড পার হয়েছে তার মান প্রকাশ করে।
time_t time(time_t *seconds);
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
current_time = time(NULL); // বর্তমান সময় গ্রহণ
printf("Current time in seconds since Epoch: %ld\n", current_time);
return 0;
}
clock()
– প্রোগ্রাম চালানোর সময় নির্ধারণclock()
ফাংশনটি প্রোগ্রাম চালু হওয়ার পর থেকে CPU-এর কতো সময় (clock ticks) অতিবাহিত হয়েছে, তা নির্ধারণ করে। এটি সাধারণত প্রোগ্রামের কার্যকারিতা বিশ্লেষণের জন্য ব্যবহৃত হয়।
clock_t clock(void);
#include <stdio.h>
#include <time.h>
int main() {
clock_t start, end;
double cpu_time_used;
start = clock();
// কোড যা সময় নিতে পারে
for (long i = 0; i < 1000000; i++);
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
printf("CPU time used: %f seconds\n", cpu_time_used);
return 0;
}
difftime()
– সময়ের পার্থক্য নির্ণয়difftime()
ফাংশনটি দুটি time_t
টাইপের সময়ের মধ্যে পার্থক্য নির্ণয় করে এবং এটি সেকেন্ডে রিটার্ন করে।
double difftime(time_t end, time_t start);
#include <stdio.h>
#include <time.h>
int main() {
time_t start, end;
start = time(NULL);
// কিছু কাজ যা সময় নিতে পারে
for (long i = 0; i < 1000000; i++);
end = time(NULL);
printf("Time difference: %.2f seconds\n", difftime(end, start));
return 0;
}
mktime()
– গঠনমূলক সময়কে time_t
টাইপে রূপান্তর করাmktime()
ফাংশনটি struct tm
টাইপের একটি গঠনমূলক সময়কে time_t
টাইপে রূপান্তর করে, যা epoch সময়ের সেকেন্ড রিটার্ন করে।
time_t mktime(struct tm *timeptr);
#include <stdio.h>
#include <time.h>
int main() {
struct tm timeinfo = {0};
timeinfo.tm_year = 2023 - 1900;
timeinfo.tm_mon = 11 - 1;
timeinfo.tm_mday = 10;
time_t timestamp = mktime(&timeinfo);
printf("Timestamp for 2023-11-10: %ld\n", timestamp);
return 0;
}
asctime()
– গঠনমূলক সময়কে পাঠযোগ্য স্ট্রিংয়ে রূপান্তর করাasctime()
ফাংশনটি struct tm
টাইপের একটি গঠনমূলক সময়কে পাঠযোগ্য স্ট্রিংয়ে রূপান্তর করে। এটি সপ্তাহের দিন, মাস, দিন, সময় এবং বছর সহ স্ট্রিং রিটার্ন করে।
char *asctime(const struct tm *timeptr);
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time = time(NULL);
struct tm *timeinfo = localtime(¤t_time);
printf("Current time: %s", asctime(timeinfo));
return 0;
}
ctime()
– সময়কে পাঠযোগ্য স্ট্রিংয়ে রূপান্তর করাctime()
ফাংশনটি time_t
টাইপের সময়কে পাঠযোগ্য স্ট্রিংয়ে রূপান্তর করে। এটি asctime()
এর মতোই কাজ করে, তবে time_t
টাইপকে সরাসরি রূপান্তর করে।
char *ctime(const time_t *time);
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time = time(NULL);
printf("Current time: %s", ctime(¤t_time));
return 0;
}
strftime()
– সময় এবং তারিখ ফরম্যাট করাstrftime()
ফাংশনটি সময় এবং তারিখকে নির্দিষ্ট ফরম্যাটে রূপান্তর করতে ব্যবহৃত হয়।
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr);
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time = time(NULL);
struct tm *timeinfo = localtime(¤t_time);
char buffer[80];
strftime(buffer, sizeof(buffer), "Date: %Y-%m-%d, Time: %H:%M:%S", timeinfo);
printf("%s\n", buffer);
return 0;
}
ফরম্যাট কোড:
%Y
– পূর্ণ বছর (e.g., 2023)%m
– মাস (01-12)%d
– দিন (01-31)%H
– ঘন্টা (00-23)%M
– মিনিট (00-59)%S
– সেকেন্ড (00-59)localtime()
– time_t
থেকে স্থানীয় সময়ে রূপান্তর করাlocaltime()
ফাংশনটি time_t
টাইপের সময়কে স্থানীয় সময় অনুযায়ী struct tm
টাইপে রূপান্তর করে।
struct tm *localtime(const time_t *time);
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time = time(NULL);
struct tm *timeinfo = localtime(¤t_time);
printf("Year: %d\n", timeinfo->tm_year + 1900);
printf("Month: %d\n", timeinfo->tm_mon + 1);
printf("Day: %d\n", timeinfo->tm_mday);
return 0;
}
gmtime()
– time_t
থেকে UTC সময়ে রূপান্তর করাgmtime()
ফাংশনটি time_t
টাইপের সময়কে UTC (Coordinated Universal Time) সময় অনুযায়ী struct tm
টাইপে রূপান্তর করে।
struct tm *gmtime(const time_t *time);
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time = time(NULL);
struct tm *timeinfo = gmtime(¤t_time);
printf("UTC Year: %d\n", timeinfo->tm_year + 1900);
printf("UTC Month: %d\n", timeinfo->tm_mon + 1);
printf("UTC Day: %d\n", timeinfo->tm_mday);
return 0;
}
ফাংশন | কাজ | উদাহরণ |
---|---|---|
time() | বর্তমান সময় নির্ণয় | time_t current = time(NULL); |
clock() | প্রোগ্রাম চালানোর সময় নির্ধারণ | clock_t c = clock(); |
difftime() | দুটি সময়ের মধ্যে পার্থক্য নির্ণয় | difftime(end, start); |
mktime() | গঠনমূলক সময়কে time_t টাইপে রূপান্তর | mktime(&timeinfo); |
asctime() | গঠনমূলক সময়কে পাঠযোগ্য স্ট্রিংয়ে রূপান্তর | asctime(&timeinfo); |
ctime() | time_t টাইপকে পাঠযোগ্য স্ট্রিংয়ে রূপান্তর | ctime(¤t); |
strftime() | সময় এবং তারিখ ফরম্যাট করা | strftime(buffer, size, format, &time); |
localtime() | time_t থেকে স্থানীয় সময়ে রূপান্তর | localtime(¤t); |
gmtime() | time_t থেকে UTC সময়ে রূপান্তর | gmtime(¤t); |
time.h
হেডার ফাইলটি সি প্রোগ্রামিংয়ে সময় এবং তারিখ সম্পর্কিত কাজগুলো সহজে সম্পন্ন করার জন্য গুরুত্বপূর্ণ। এর মাধ্যমে বর্তমান সময়, তারিখ নির্ধারণ এবং সময়ের পার্থক্য মাপা সহ আরও অনেক কার্যকর কাজ করা যায়।
time()
, clock()
, এবং difftime()
এর মাধ্যমে সময় মাপাসি প্রোগ্রামিং ভাষায় সময় মাপার জন্য time.h
হেডার ফাইলটি ব্যবহৃত হয়। সময় মাপার জন্য সি ভাষায় বিভিন্ন ফাংশন রয়েছে, যেমন time()
, clock()
, এবং **difftime()
**। এই ফাংশনগুলো সময়ের সাথে সম্পর্কিত বিভিন্ন কার্যক্রম যেমন সিস্টেম সময় বা প্রোগ্রামের রানটাইম পরিমাপ করতে ব্যবহৃত হয়। প্রতিটি ফাংশনই নির্দিষ্ট কাজের জন্য উপযোগী, এবং তাদের ব্যবহার সময় ব্যবস্থাপনা ও অপটিমাইজেশনের ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ।
নিচে এই ফাংশনগুলোর ব্যবহার এবং কার্যকারিতা বিস্তারিতভাবে আলোচনা করা হলো।
time()
– সিস্টেম টাইমtime()
ফাংশনটি সিস্টেমের বর্তমান সময়কে ইউনিকোড টাইম স্ট্যাম্প (সময় গণনা সেকেন্ডে) হিসেবে রিটার্ন করে। এটি সাধারণত সিস্টেমের বর্তমান সময় মাপার জন্য ব্যবহৃত হয় এবং এটি প্রাথমিক সময়ের (epoch) থেকে সেকেন্ডের সংখ্যা রিটার্ন করে, যেটি 1970 সালের জানুয়ারি 1 তারিখ 00:00:00 UTC (Coordinated Universal Time) থেকে গণনা করা হয়।
time_t time(time_t *t);
t
– যদি পয়েন্টার দেওয়া হয়, তাহলে এটি প্রাপ্ত সময়ে স্টোর করা হয়। এটি ঐচ্ছিক, তাই time(NULL)
লিখেও ফাংশনটি ব্যবহার করা যেতে পারে।#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
current_time = time(NULL); // বর্তমান সিস্টেম টাইম পাওয়া
if (current_time == ((time_t)-1)) {
printf("Error getting the time.\n");
return 1;
}
printf("Current time: %ld seconds since the Epoch\n", current_time);
return 0;
}
এখানে time(NULL)
ফাংশনটি বর্তমান সময় (epoch থেকে সেকেন্ডে) রিটার্ন করেছে এবং এটি current_time
ভেরিয়েবলে সংরক্ষিত হয়েছে।
clock()
– প্রোগ্রামের রানটাইমclock()
ফাংশনটি প্রোগ্রামের রানটাইম পরিমাপ করতে ব্যবহৃত হয়। এটি CPU টাইম (সর্বমোট CPU ব্যবহার সময়) রিটার্ন করে, যা সেকেন্ডে পরিমাপ করা হয়। তবে, এটি সিস্টেম সময় নয়; এটি শুধুমাত্র প্রোগ্রামের CPU ব্যবহারকে হিসাব করে। তাই, যদি প্রোগ্রামটি অন্য কোনো প্রক্রিয়া বা থ্রেড দ্বারা ব্যস্ত না থাকে, তবে এটি একটি নির্ভুল সময় পরিমাপ করবে।
clock_t clock(void);
clock_t
টাইপটি ফাংশনটির রিটার্ন টাইপ যা সিস্টেমের ব্যবহৃত CPU সময়ের মোট মান।#include <stdio.h>
#include <time.h>
int main() {
clock_t start_time, end_time;
double time_taken;
start_time = clock(); // প্রোগ্রাম শুরু হওয়ার সময়
// কিছু কোড যা সময় নেবে
for (long i = 0; i < 1000000; i++) {
// উদ্দেশ্যহীন কাজ
}
end_time = clock(); // প্রোগ্রাম শেষ হওয়ার সময়
time_taken = ((double)(end_time - start_time)) / CLOCKS_PER_SEC; // CPU সময় সেকেন্ডে পরিণত করা
printf("Time taken: %f seconds\n", time_taken);
return 0;
}
এখানে clock()
ফাংশনটি প্রোগ্রামের CPU সময় গণনা করেছে এবং CLOCKS_PER_SEC
দ্বারা এটি সেকেন্ডে রূপান্তরিত হয়েছে।
difftime()
– দুটি সময়ের মধ্যে পার্থক্যdifftime()
ফাংশনটি দুটি সময়ের মধ্যে পার্থক্য নির্ধারণ করতে ব্যবহৃত হয়। এটি সাধারণত time()
ফাংশন থেকে প্রাপ্ত সময়ের মধ্যে পার্থক্য বের করার জন্য ব্যবহৃত হয়, এবং এটি সেকেন্ডে পার্থক্য রিটার্ন করে। এটি একটি প্রক্রিয়া বা ইভেন্টের সময়কাল পরিমাপ করতে সহায়ক।
double difftime(time_t time1, time_t time2);
time1
এবং time2
হল দুটি time_t
টাইপের সময় মান, যেগুলোর মধ্যে পার্থক্য নির্ধারণ করা হবে।#include <stdio.h>
#include <time.h>
int main() {
time_t start_time, end_time;
start_time = time(NULL); // শুরু সময়
// কিছু বিলম্ব
for (long i = 0; i < 10000000; i++);
end_time = time(NULL); // শেষ সময়
double elapsed_time = difftime(end_time, start_time); // সময়ের পার্থক্য নির্ধারণ
printf("Elapsed time: %.2f seconds\n", elapsed_time);
return 0;
}
এখানে difftime()
ফাংশনটি শুরু এবং শেষ সময়ের মধ্যে পার্থক্য নির্ধারণ করেছে এবং সেকেন্ডে ফলাফল প্রদর্শন করেছে।
ফাংশন | কাজ | সিঙ্কট্যাক্স |
---|---|---|
time() | সিস্টেমের বর্তমান সময় পাওয়া | time_t time(time_t *t); |
clock() | প্রোগ্রামের CPU ব্যবহৃত সময় পরিমাপ করা | clock_t clock(void); |
difftime() | দুটি সময়ের মধ্যে পার্থক্য নির্ধারণ | double difftime(time_t time1, time_t time2); |
এই ফাংশনগুলো time.h
হেডার ফাইলের অংশ এবং সি প্রোগ্রামে সময় সম্পর্কিত কার্যক্রমের জন্য অপরিহার্য। time()
সিস্টেম সময়, clock()
প্রোগ্রামের CPU সময়, এবং difftime()
দুটি সময়ের মধ্যে পার্থক্য নির্ধারণ করতে ব্যবহৃত হয়।
strftime()
এর মাধ্যমে সময় ফরম্যাট করাসি প্রোগ্রামিং ভাষায় strftime()
ফাংশনটি ব্যবহৃত হয় সময় এবং তারিখকে একটি নির্দিষ্ট ফরম্যাটে রূপান্তর করার জন্য। এটি time.h
হেডার ফাইলের অন্তর্গত এবং এটি ব্যবহারকারীর জন্য সময় এবং তারিখের আউটপুট কাস্টমাইজ করতে সহায়ক।
strftime()
ফাংশনটি একটি struct tm
(যা সময় সম্পর্কিত বিভিন্ন মান ধারণ করে) ব্যবহার করে, এবং আপনি নির্দিষ্ট ফরম্যাট স্ট্রিং দিয়ে আউটপুট নিয়ন্ত্রণ করতে পারেন।
size_t strftime(char *str, size_t size, const char *format, const struct tm *tm);
str
: এটি সেই বাফার যেখানে ফরম্যাট করা সময় স্টোর হবে।size
: বাফারের আকার (বাফারটি কতটা বড় হতে হবে)।format
: ফরম্যাট স্ট্রিং, যা সময় কিভাবে প্রদর্শিত হবে তা নির্ধারণ করে।tm
: এটি একটি struct tm
টাইপের পয়েন্টার যা সময়ের মান ধারণ করে।strftime()
এর ফরম্যাট স্ট্রিংফরম্যাট স্ট্রিংয়ের মধ্যে বিভিন্ন কেস-পদ্বতির জন্য নির্দিষ্ট চরিত্র ব্যবহার করা হয়। কিছু সাধারণ ফরম্যাটের চরিত্র নিচে দেওয়া হলো:
ফরম্যাট চরিত্র | বর্ণনা |
---|---|
%Y | পূর্ণ বছর (চার অঙ্কের) |
%m | মাস (01-12) |
%d | মাসের দিন (01-31) |
%H | ঘণ্টা (00-23) |
%M | মিনিট (00-59) |
%S | সেকেন্ড (00-59) |
%I | ঘণ্টা (12-ঘণ্টার পদ্ধতিতে, 01-12) |
%p | AM/PM |
%A | পূর্ণ সপ্তাহের দিন (Monday, etc.) |
%a | সংক্ষিপ্ত সপ্তাহের দিন (Mon, etc.) |
%B | পূর্ণ মাস (January, etc.) |
%b | সংক্ষিপ্ত মাস (Jan, Feb, etc.) |
strftime()
ব্যবহার#include <stdio.h>
#include <time.h>
int main() {
time_t t;
struct tm *tm_info;
char buffer[80];
// বর্তমান সময় পাওয়া
time(&t);
tm_info = localtime(&t);
// সময় ফরম্যাট করা
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", tm_info);
// ফরম্যাট করা সময় প্রদর্শন
printf("Formatted time: %s\n", buffer);
return 0;
}
time(&t)
: এটি বর্তমান সময় (Unix টাইমস্ট্যাম্প) সংগ্রহ করে।localtime(&t)
: এটি struct tm
টাইপের পয়েন্টারে স্থানীয় সময় ধারণ করে।strftime()
: এটি buffer
তে ফরম্যাট করা সময় লিখে। ফরম্যাট স্ট্রিং "%Y-%m-%d %H:%M:%S"
ব্যবহার করা হয়েছে, যা আউটপুটকে বছরের-মাসের-দিনের ঘণ্টা:মিনিট:সেকেন্ড ফরম্যাটে রূপান্তরিত করবে।Formatted time: 2024-11-10 14:25:39
এখানে, strftime()
ফাংশনটি বর্তমান সময়কে "%Y-%m-%d %H:%M:%S"
ফরম্যাটে রূপান্তর করেছে।
strftime()
ব্যবহার করতে কিছু সাধারণ কেস:তারিখ এবং সময়ের পূর্ণ ফরম্যাট:
strftime(buffer, sizeof(buffer), "%A, %B %d, %Y %H:%M:%S", tm_info);
printf("Full date and time: %s\n", buffer);
আউটপুট:
Full date and time: Sunday, November 10, 2024 14:25:39
শুধুমাত্র সময় (ঘণ্টা:মিনিট:সেকেন্ড):
strftime(buffer, sizeof(buffer), "%H:%M:%S", tm_info);
printf("Time: %s\n", buffer);
আউটপুট:
Time: 14:25:39
শুধুমাত্র তারিখ (বছর-মাস-দিন):
strftime(buffer, sizeof(buffer), "%Y-%m-%d", tm_info);
printf("Date: %s\n", buffer);
আউটপুট:
Date: 2024-11-10
strftime()
ফাংশনটি সি প্রোগ্রামে সময় এবং তারিখকে নির্দিষ্ট ফরম্যাটে রূপান্তর করতে ব্যবহৃত হয়।struct tm
টাইপের পয়েন্টারের মাধ্যমে স্থানীয় সময়ের মান গ্রহণ করে এবং তা একটি স্ট্রিংয়ে রূপান্তর করে।%Y
(বছর), %m
(মাস), %d
(দিন), %H
(ঘণ্টা), %M
(মিনিট), %S
(সেকেন্ড) ইত্যাদি।strftime()
ফাংশনটি সময় এবং তারিখের বিভিন্ন ফরম্যাটে আউটপুট প্রদানের জন্য অত্যন্ত কার্যকরী এবং এটি বিশেষভাবে লগ ফাইল তৈরি, সময় নির্ধারণ, অথবা ইউজার ইন্টারফেসে সময় প্রদর্শনের জন্য ব্যবহৃত হয়।
localtime()
, gmtime()
এবং টাইম জোন হ্যান্ডলিংসি প্রোগ্রামিং ভাষায় টাইম জোন হ্যান্ডলিং এবং টাইম সম্পর্কিত অপারেশন করার জন্য time.h
হেডার ফাইলটি ব্যবহৃত হয়। এই হেডার ফাইলটি বিভিন্ন টাইম ফাংশন সরবরাহ করে, যার মাধ্যমে আপনি বর্তমান সময় বের করতে, টাইম জোন সম্পর্কিত কাজ করতে এবং সময়ের সঙ্গে সম্পর্কিত অপারেশন করতে পারেন। localtime()
এবং gmtime()
ফাংশন দুটি প্রধান ফাংশন যা টাইম সম্পর্কিত কাজ করার জন্য ব্যবহৃত হয়।
এখানে localtime()
, gmtime()
এবং টাইম জোন হ্যান্ডলিং সম্পর্কিত বিস্তারিত আলোচনা করা হয়েছে।
localtime()
– লোকাল টাইমে সময় রূপান্তরlocaltime()
ফাংশনটি একটি time_t
টাইপের মান গ্রহণ করে এবং তা লোকাল টাইম (অর্থাৎ, আপনার সিস্টেমের টাইম জোন অনুযায়ী) অনুযায়ী রূপান্তরিত করে। এটি struct tm
টাইপের একটি পয়েন্টার রিটার্ন করে, যা সিস্টেমের লোকাল টাইমের বিস্তারিত তথ্য ধারণ করে।
struct tm *localtime(const time_t *time);
#include <stdio.h>
#include <time.h>
int main() {
time_t rawtime;
struct tm *timeinfo;
time(&rawtime); // বর্তমান সময় সংগ্রহ
timeinfo = localtime(&rawtime); // লোকাল টাইমে রূপান্তর
printf("Local time and date: %s", asctime(timeinfo)); // লোকাল সময় প্রদর্শন
return 0;
}
এখানে localtime()
ফাংশনটি বর্তমান সময়কে সিস্টেমের লোকাল টাইমে রূপান্তর করেছে এবং asctime()
ফাংশনটি সেই টাইমের একটি ফরম্যাটেড আউটপুট প্রদর্শন করেছে।
gmtime()
– গ্রিনউইচ মীন টাইম (GMT) বা ইউটিসি (UTC)gmtime()
ফাংশনটি time_t
টাইপের একটি মান গ্রহণ করে এবং তা গ্রিনউইচ মীন টাইম (GMT) বা কোঅর্ডিনেটেড ইউনিভার্সাল টাইম (UTC) এ রূপান্তরিত করে। এটি struct tm
টাইপের একটি পয়েন্টার রিটার্ন করে, যা GMT বা UTC এর তথ্য ধারণ করে।
struct tm *gmtime(const time_t *time);
#include <stdio.h>
#include <time.h>
int main() {
time_t rawtime;
struct tm *timeinfo;
time(&rawtime); // বর্তমান সময় সংগ্রহ
timeinfo = gmtime(&rawtime); // UTC বা GMT সময়ে রূপান্তর
printf("UTC time and date: %s", asctime(timeinfo)); // UTC সময় প্রদর্শন
return 0;
}
এখানে gmtime()
ফাংশনটি বর্তমান সময়কে UTC (গ্রিনউইচ মীন টাইম) এ রূপান্তর করেছে এবং asctime()
ফাংশনটি সেই সময়ের একটি ফরম্যাটেড আউটপুট প্রদর্শন করেছে।
টাইম জোন সম্পর্কিত কিছু ফাংশন সি প্রোগ্রামে time.h
হেডার ফাইলে পাওয়া যায়। সিস্টেমের টাইম জোন এবং সময়ের সঠিক হিসাব করার জন্য timezone
, tzset()
, এবং strftime()
ফাংশনগুলো ব্যবহৃত হয়।
timezone
এবং tzset()
timezone
একটি গ্লোবাল ভ্যারিয়েবল যা সিস্টেমের লোকাল টাইম জোনের ব্যবধান (ডিফারেন্স) দেখায় GMT এর সাথে। tzset()
ফাংশনটি টাইম জোনের তথ্য আপডেট করে, যা টাইম জোন সম্পর্কিত অন্যান্য ফাংশনগুলোকে সঠিকভাবে কাজ করতে সাহায্য করে।
#include <stdio.h>
#include <time.h>
int main() {
time_t rawtime;
struct tm *timeinfo;
time(&rawtime); // বর্তমান সময় সংগ্রহ
tzset(); // টাইম জোন সেট আপডেট করা
timeinfo = localtime(&rawtime); // লোকাল টাইমে রূপান্তর
printf("Local time: %s", asctime(timeinfo));
printf("Timezone offset: %ld seconds\n", timezone); // টাইম জোনের ডিফারেন্স প্রদর্শন
return 0;
}
এখানে timezone
গ্লোবাল ভ্যারিয়েবলটি ব্যবহার করা হয়েছে টাইম জোনের ডিফারেন্স প্রদর্শনের জন্য।
strftime()
– সময় ফরম্যাটে রূপান্তরstrftime()
ফাংশনটি একটি struct tm
টাইপের সময়কে একটি স্ট্রিংয়ের ফরম্যাটে রূপান্তর করতে ব্যবহৃত হয়। এটি সময় এবং তারিখের আউটপুটকে বিশেষ ফরম্যাটে প্রিন্ট করতে ব্যবহৃত হয়।
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr);
str
– যেখানে ফরম্যাটেড সময় রাখা হবে।maxsize
– স্ট্রিংটির আকার।format
– সময়ের ফরম্যাট।timeptr
– struct tm
টাইপের টাইম পয়েন্টার।#include <stdio.h>
#include <time.h>
int main() {
time_t rawtime;
struct tm *timeinfo;
char buffer[80];
time(&rawtime); // বর্তমান সময় সংগ্রহ
timeinfo = localtime(&rawtime); // লোকাল টাইমে রূপান্তর
// সময়ের ফরম্যাট নির্ধারণ করা
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo);
printf("Formatted time: %s\n", buffer); // ফরম্যাটে রূপান্তরিত সময় প্রদর্শন
return 0;
}
এখানে strftime()
ফাংশনটি বর্তমান সময়কে একটি নির্দিষ্ট ফরম্যাটে রূপান্তর করেছে, যেমন: "YYYY-MM-DD HH:MM:SS"
।
ফাংশন | কাজ |
---|---|
localtime() | UTC সময়কে লোকাল টাইমে রূপান্তরিত করে |
gmtime() | লোকাল সময়কে UTC (GMT) সময়ে রূপান্তরিত করে |
timezone | সিস্টেমের লোকাল টাইম জোনের ডিফারেন্স দেখায় |
tzset() | টাইম জোন সম্পর্কিত তথ্য আপডেট করে |
strftime() | struct tm টাইপের সময়কে একটি নির্দিষ্ট ফরম্যাটে রূপান্তর করে |
localtime()
এবং gmtime()
ফাংশনগুলি সময়ের লোকাল টাইম এবং UTC সময়ে রূপান্তরের জন্য ব্যবহৃত হয়, যা বিভিন্ন সময় অঞ্চল সম্পর্কিত কাজের জন্য অত্যন্ত গুরুত্বপূর্ণ। strftime()
ফাংশনটি সময়কে একটি ফরম্যাটে রূপান্তর করতে ব্যবহৃত হয়, যা ব্যবহারকারীর ইন্টারফেসে প্রয়োজনীয় আউটপুট প্রদান করতে সহায়ক।
common.read_more